﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLPM.BUS;
using QLPM.DTO;

namespace QLPhongMachTu
{
    public partial class MainForm : Form
    {
        int tam = 0;
        public MainForm()
        {
            InitializeComponent();
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
            for (int thang = 1; thang <= 12; thang++)
            {
                cbxThang.Items.Add(thang);
            }
            cbxThang.SelectedIndex = 0;
            for (int nam = DateTime.Now.Year; nam >= DateTime.Now.Year - 3; nam--)
            {
                cbxNam.Items.Add(nam);
            }
            txbNgayKhamBenh.Text = DateTime.Now.Date.ToShortDateString();
            int sobntoida = new ThamSoBUS().LaySoBNToiDa();
            int sobndakham = Convert.ToInt32(new BenhNhanBUS().SoBNDaKham(txbNgayKhamBenh.Text.ToString()).ToString());
            txbBNConLai.Text = (sobntoida - sobndakham).ToString();
            dtgDanhSachKhamBenh.DataSource = new BenhNhanBUS().DanhSachKhamBenh(txbNgayKhamBenh.Text);
            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
            dtgCachDung.DataSource = new CachDungBUS().DanhSachCachDung();
            string sql = "";
            dtgTraCuuBN.DataSource = new BenhNhanBUS().TraCuuBenhNhan(sql);

            //Tab Thuoc
            DonVi.DataSource = new DonViBUS().DanhSachDonVi();
            DonVi.DisplayMember = "TenDonVi";
            DonVi.ValueMember = "MaDonVi";
            cbcDonViTinh.DataSource = new DonViBUS().DanhSachDonVi();
            cbcDonViTinh.DisplayMember = "TenDonVi";
            cbcDonViTinh.ValueMember = "MaDonVi";
            //
            cbxLoaiBenh.DataSource = new LoaiBenhBUS().DanhSachLoaiBenh();
            cbxLoaiBenh.ValueMember = "MaLoaiBenh";
            cbxLoaiBenh.DisplayMember = "TenLoaiBenh";
            TenThuoc1.DataSource = new ThuocBUS().DanhSachThuoc();
            TenThuoc1.ValueMember = "MaThuoc";
            TenThuoc1.DisplayMember = "TenThuoc";
            CachDung1.DataSource = new CachDungBUS().DanhSachCachDung();
            CachDung1.ValueMember = "MaCachDung";
            CachDung1.DisplayMember = "TenCachDung";

            Form1 f = new Form1();
            f.ShowDialog();
        }

        private void dtgCachDung_SelectionChanged(object sender, EventArgs e)
        {
            txbMaCachDung.Text = dtgCachDung.CurrentRow.Cells["MaCachDung"].Value.ToString();
            txbTenCachDung.Text = dtgCachDung.CurrentRow.Cells["TenCachDung"].Value.ToString();
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 0;
        }

        private void buttonX2_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 8;
        }

        private void buttonX3_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 1;
            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
            btnTraCuu.Visible = true;
            btnThemBenhNhan.Visible = true;
            btnXoaBenhNhan.Visible = true;
            btnCapNhatBenhNhan.Visible = true;
        }

        private void buttonX4_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 4;
        }

        #region "Menu label"

        private void lậpHóaĐơnToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (tabControl1.SelectedTabIndex == 0)
            {
                int mbn = Convert.ToInt32(dtgDanhSachKhamBenh.CurrentRow.Cells["MaBenhNhan1"].Value.ToString());
                if (new BenhNhanBUS().LayTinhTrangLP(mbn) != 0 && new BenhNhanBUS().LayTinhTrangTT(mbn) != 1)
                {

                    int TienThuoc = 0;
                    int ThanhTien = 0;
                    int TienKham = new ThamSoBUS().LayTienKham();
                    tabControl1.SelectedTabIndex = 2;
                    txbMaBNHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["MaBenhNhan1"].Value.ToString();
                    txbTenBNHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["TenBenhNhan1"].Value.ToString();
                    txbGioiTinhHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["GioiTinh1"].Value.ToString();
                    txbDiaChiHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["DiaChi1"].Value.ToString();
                    txbNgaySinhHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["NgaySinh1"].Value.ToString();
                    txbNgayKhamHoaDon.Text = txbNgayKhamBenh.Text.ToString();
                    txbTienKham.Text = TienKham.ToString();

                    KhamBenh kb = new KhamBenh();
                    kb.MaBenhNhan = Convert.ToInt32(txbMaBNHoaDon.Text.ToString());
                    kb.NgayKham = txbNgayKhamHoaDon.Text.ToString();
                    int MaKham = new KhamBenhBUS().LayMaKhamBenh(kb);

                    List<ChiTietKhamBenh> ctkb = new ChiTietKhamBenhBUS().LayCTKB(MaKham);
                    TienThuoc = TinhTien(ctkb);
                    ThanhTien = TienThuoc + TienKham;
                    txbTienThuoc.Text = TienThuoc.ToString();
                    txbTongTien.Text = ThanhTien.ToString();
                }
                else if (new BenhNhanBUS().LayTinhTrangLP(mbn) == 0)
                {
                    MessageBox.Show("Bệnh nhân này chưa Lập Phiếu Khám Bệnh,không thể Lập Hóa Đơn !", "Quản Lý Phòng Mạch Tư");
                }
                else if (new BenhNhanBUS().LayTinhTrangTT(mbn) == 1)
                {
                    MessageBox.Show("Bệnh nhân này đã Lập Hóa Đơn rồi,không thể Lập Hóa Đơn nữa !", "Quản Lý Phòng Mạch Tư");
                }
            }
            else
            {
                tabControl1.SelectedTabIndex = 0;
                MessageBox.Show("Chưa có bệnh nhân được chọn !", "Quản Lý Phòng Mạch Tư");
            }
        }

        private void danhSáchBệnhNhânToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 0;
        }

        private void lậpPhiếuKhámBệnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 9;
        }

        private void thêmBệnhNhânMớiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 1;
            grpTraCuuBN.Visible = false;
            dtgTraCuuBN.Hide();
            btnTraCuuBN.Visible = false;
            dtgBenhNhan.Visible = true;
            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
            btnTraCuu.Visible = true;
            btnThemBenhNhan.Visible = true;
            btnXoaBenhNhan.Visible = true;
            btnCapNhatBenhNhan.Visible = true;
        }

        private void traCứuBệnhNhânToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 1;
            grpTraCuuBN.Visible = true;
            btnTraCuuBN.Visible = true;
            dtgTraCuuBN.Visible = true;
            dtgBenhNhan.Hide();
            string sql = "";
            dtgTraCuuBN.DataSource = new BenhNhanBUS().TraCuuBenhNhan(sql);
            txbHoTen.Text = "";
            txbNgaySinh.Text = "";
            txbDiaChi.Text = "";
            txbMaBNSearch.Text = "";
            txbTenBNSearch.Text = "";
            txbNgaySinhSearch.Text = "";
            txbDiaChiSearch.Text = "";
            btnTraCuu.Visible = false;
            btnThemBenhNhan.Visible = false;
            btnXoaBenhNhan.Visible = false;
            btnCapNhatBenhNhan.Visible = false;
        }

        private void lậpBáoCáoDoanhThuTheoNgàyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 7;

        }

        private void lậpBáoCáoSửDụngThuốcToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 7;
        }

        private void đăngXuấtToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
            Form1 f = new Form1();
            f.ShowDialog();
        }

        private void giúpĐỡToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(this, "Help\\QLPMT2011Help.chm");
        }

        private void thoátToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion

        private void btnDSBN_Click(object sender, EventArgs e)
        {
            tam = 0;
            grpTraCuuBN.Visible = false;
            dtgTraCuuBN.Hide();
            btnTraCuuBN.Visible = false;
            dtgBenhNhan.Visible = true;
            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
            btnTraCuu.Visible = true;
            btnThemBenhNhan.Visible = true;
            btnXoaBenhNhan.Visible = true;
            btnCapNhatBenhNhan.Visible = true;

        }

        private void btnTraCuu_Click(object sender, EventArgs e)
        {
            grpTraCuuBN.Visible = true;
            dtgTraCuuBN.Visible = true;
            btnTraCuuBN.Visible = true;
            dtgBenhNhan.Hide();
            string sql = "";
            dtgTraCuuBN.DataSource = new BenhNhanBUS().TraCuuBenhNhan(sql);
            txbHoTen.Text = "";
            txbDiaChi.Text = "";
            txbNgaySinh.Text = "";
            btnTraCuu.Visible = false;
            btnThemBenhNhan.Visible = false;
            btnXoaBenhNhan.Visible = false;
            btnCapNhatBenhNhan.Visible = false;
        }

        private void tabItem1_Click(object sender, EventArgs e)
        {
            txbTenBNKhamBenh.Text = " ";
            txbNgaySinhBNKhamBenh.Text = " ";
            txbGioiTinhBNKhamBenh.Text = " ";
            txbDiaChiBNKhamBenh.Text = " ";
        }

        private void tabItem2_Click(object sender, EventArgs e)
        {
            grpTraCuuBN.Visible = false;
            btnTraCuuBN.Visible = false;
            dtgTraCuuBN.Hide();
            dtgBenhNhan.Visible = true;
            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
            btnTraCuu.Visible = true;
            btnThemBenhNhan.Visible = true;
            btnXoaBenhNhan.Visible = true;
            btnCapNhatBenhNhan.Visible = true;

        }

        #region "tab BenhNhan"

        private void dtgBenhNhan_SelectionChanged(object sender, EventArgs e)
        {
            txbHoTen.Text = dtgBenhNhan.CurrentRow.Cells["TenBenhNhan"].Value.ToString();
            txbNgaySinh.Text = dtgBenhNhan.CurrentRow.Cells["NgaySinh"].Value.ToString();
            txbDiaChi.Text = dtgBenhNhan.CurrentRow.Cells["DiaChi"].Value.ToString();
            cbxGioiTinh.SelectedIndex = 0;
            if (dtgBenhNhan.CurrentRow.Cells["GioiTinh"].Value.ToString() == "Nữ")
            {
                cbxGioiTinh.SelectedIndex = 0;
            }
            else
            {
                cbxGioiTinh.SelectedIndex = 1;
            }
        }

        int kiemtraKhoangTrang(string s)
        {
            int kt = 0;
            
            String[] arr = s.Split(new string[] { " " }, StringSplitOptions.None);
            for (int i = 0; i < arr.Length; i++)
            {
                if (arr[i] == "")
                    kt = 1;
                //else
                //{
                //    kt = 0;
                //    i = arr.Length;
                //}
            }
            return kt;
        }

        private void btnThemBenhNhan_Click(object sender, EventArgs e)
        {
            int kt = 0;
            if (txbHoTen.Text.ToString() == "" || kiemtraKhoangTrang(txbHoTen.Text.ToString()) == 1)
            {
                kt = 2;
                if (txbDiaChi.Text.ToString() == "" || kiemtraKhoangTrang(txbDiaChi.Text.ToString()) == 1)
                {

                    if (txbNgaySinh.Text.ToString() == "" || kiemtraKhoangTrang(txbNgaySinh.Text.ToString()) == 1)
                    {
                        MessageBox.Show("Họ tên bệnh nhân không được trống \nĐịa chỉ bệnh nhân không được trống \nNgày sinh bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                    }
                    else
                    {
                        MessageBox.Show("Họ tên bệnh nhân không được trống \nĐịa chỉ bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                    }
                }
                else
                {
                    if (txbNgaySinh.Text.ToString() == "" || kiemtraKhoangTrang(txbNgaySinh.Text.ToString()) == 1)
                    {
                        MessageBox.Show("Họ tên bệnh nhân không được trống \nNgày sinh bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                    }
                    else
                    {
                        MessageBox.Show("Họ tên bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                    }
                }
            }
            else
            {
                if (txbDiaChi.Text.ToString() == "" || kiemtraKhoangTrang(txbDiaChi.Text.ToString()) == 1)
                {
                    kt = 2;
                    if (txbNgaySinh.Text.ToString() == "" || kiemtraKhoangTrang(txbNgaySinh.Text.ToString()) == 1)
                    {
                        MessageBox.Show("Địa chỉ bệnh nhân không được trống \nNgày sinh bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                    }
                    else
                    {
                        MessageBox.Show("Địa chỉ bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                    }
                }
                else
                {
                    if (txbNgaySinh.Text.ToString() == "" || kiemtraKhoangTrang(txbNgaySinh.Text.ToString()) == 1)
                    {
                        MessageBox.Show("Ngày sinh bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
                        kt = 2;
                    }
                    else
                    {
                        BenhNhan bn = new BenhNhan();
                        bn.MaBenhNhan = Convert.ToInt32(dtgBenhNhan.CurrentRow.Cells["MaBenhNhan"].Value) + 1;
                        bn.TenBenhNhan = txbHoTen.Text.ToString();
                        bn.DiaChi = txbDiaChi.Text;
                        bn.NgaySinh = txbNgaySinh.Text.ToString();
                        string gt = cbxGioiTinh.SelectedItem.ToString();
                        if (cbxGioiTinh.SelectedItem.ToString() == "Nữ")
                        {
                            bn.GioiTinh = "1";
                        }
                        else
                        {
                            bn.GioiTinh = "0";
                        }
                        bn.DaLapPhieu = "0";
                        bn.DaThanhToan = "0";
                        List<BenhNhan> dsbn = new List<BenhNhan>();
                        dsbn = new BenhNhanBUS().DanhSachBenhNhan();
                        for (int i = 0; i < dsbn.Count; i++)
                        {
                            if (bn.TenBenhNhan == dsbn[i].TenBenhNhan && bn.NgaySinh == dsbn[i].NgaySinh && bn.DiaChi == dsbn[i].DiaChi && gt == dsbn[i].GioiTinh)
                            {
                                kt = 1;
                            }
                        }
                        if (kt == 0)
                        {
                            new BenhNhanBUS().ThemBenhNhan(bn);
                            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
                            MessageBox.Show("Thêm bệnh nhân thành công", "Quản Lý Phòng Mạch Tư");
                        }
                        if (kt == 1)
                        {
                            MessageBox.Show("Bệnh nhân này đã tồn tại trong Danh Sách Bệnh Nhân rồi", "Quản Lý Phòng Mạch Tư");
                        }
                    }
                }
            }
            //else
            //{
            //    MessageBox.Show("nhap thong tin", "Quản Lý Phòng Mạch Tư");
            //}
        }

        private void btnXoaBenhNhan_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn chắc chắn muốn xóa chứ ?", "Quản Lý Phòng Mạch Tư", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                int mabn = 1;
                if (dtgBenhNhan.Visible == true)
                {
                    mabn = Convert.ToInt32(dtgBenhNhan.CurrentRow.Cells["MaBenhNhan"].Value.ToString());
                }
                if (dtgTraCuuBN.Visible == true)
                {
                    mabn = Convert.ToInt16(dtgTraCuuBN.CurrentRow.Cells["MaBenhNhan2"].Value.ToString());
                }
                new BenhNhanBUS().XoaBenhNhan(mabn);
                dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
                MessageBox.Show("Xóa bệnh nhân thành công", "Quản Lý Phòng Mạch Tư");
            }
        }

        private void btnCapNhatBenhNhan_Click(object sender, EventArgs e)
        {
            if (txbHoTen.Text.ToString() == " ")
            {
                MessageBox.Show("Họ Tên bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
            }
            if (txbNgaySinh.Text.ToString() == " ")
            {
                MessageBox.Show("Ngày sinh bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
            }
            if (txbDiaChi.Text.ToString() == " ")
            {
                MessageBox.Show("Địa chỉ bệnh nhân không được trống", "Quản Lý Phòng Mạch Tư");
            }
            BenhNhan bn = new BenhNhan();
            if (dtgBenhNhan.Visible == true)
            {
                bn.MaBenhNhan = Convert.ToInt32(dtgBenhNhan.CurrentRow.Cells["MaBenhNhan"].Value);
            }
            if (dtgTraCuuBN.Visible == true)
            {
                bn.MaBenhNhan = Convert.ToInt32(dtgTraCuuBN.CurrentRow.Cells["MaBenhNhan2"].Value);
            }
            bn.TenBenhNhan = txbHoTen.Text.ToString();
            bn.NgaySinh = txbNgaySinh.Text.ToString();
            bn.DiaChi = txbDiaChi.Text;
            if (cbxGioiTinh.SelectedItem.ToString() == "Nữ")
            {
                bn.GioiTinh = "1";
            }
            else
            {
                bn.GioiTinh = "0";
            }
            new BenhNhanBUS().CapNhatBenhNhan(bn);
            dtgBenhNhan.DataSource = new BenhNhanBUS().DanhSachBenhNhan();
            String ngaykham = txbNgayKhamBenh.Text.ToString();
            dtgDanhSachKhamBenh.DataSource = new BenhNhanBUS().DanhSachKhamBenh(ngaykham);
            MessageBox.Show("Cập nhật bệnh nhân thành công", "Quản Lý Phòng Mạch Tư");
        }

        private void btnTraCuuBN_Click(object sender, EventArgs e)
        {
            string sql = "";
            if (txbMaBNSearch.Text != "")
            {
                string temp = txbMaBNSearch.Text.ToString();
                sql += "or MaBenhNhan=" + temp;
            }
            if (txbTenBNSearch.Text != "")
            {
                string temp = txbTenBNSearch.Text.ToString();
                sql += "or TenBenhNhan LIKE '%" + temp + "%'";
            }
            if (txbNgaySinhSearch.Text != "")
            {
                string temp = txbNgaySinhSearch.Text.ToString();
                sql += "or NgaySinh LIKE '%" + temp + "%'";
            }
            if (txbDiaChiSearch.Text != "")
            {
                string temp = txbDiaChiSearch.Text.ToString();
                sql += "or DiaChi LIKE '%" + temp + "%'";
            }
            dtgTraCuuBN.DataSource = new BenhNhanBUS().TraCuuBenhNhan(sql);
            if (dtgTraCuuBN.RowCount == 0)
            {
                MessageBox.Show("Không Tìm Thấy Bệnh Nhân thỏa các điều kiện trên", "Quản Lý Phòng Mạch Tư");
            }
            else
            {
                btnThemBenhNhan.Visible = false;
                btnXoaBenhNhan.Visible = true;
                btnCapNhatBenhNhan.Visible = true;
            }
        }

        private void dtgTraCuuBN_SelectionChanged(object sender, EventArgs e)
        {
            txbHoTen.Text = dtgTraCuuBN.CurrentRow.Cells["TenBenhNhan2"].Value.ToString();
            txbDiaChi.Text = dtgTraCuuBN.CurrentRow.Cells["DiaChi2"].Value.ToString();
            txbNgaySinh.Text = dtgTraCuuBN.CurrentRow.Cells["NgaySinh2"].Value.ToString();
            cbxGioiTinh.SelectedIndex = 0;
            if (dtgTraCuuBN.CurrentRow.Cells["GioiTinh2"].Value.ToString() == "Nữ")
            {
                cbxGioiTinh.SelectedIndex = 0;
            }
            else
            {
                cbxGioiTinh.SelectedIndex = 1;
            }
        }

        public int KiemTra(int a, List<int> B)
        {
            int kt = 0;
            for (int i = 0; i < B.Count; i++)
            {
                if (a == B[i])
                {
                    kt = 1;
                }
            }
            return kt;
        }

        private void btnLapDSKham_Click(object sender, EventArgs e)
        {
            if (dtgTraCuuBN.RowCount != 0 || dtgBenhNhan.Visible == true)
            {
                List<int> lt = new List<int>();
                lt = new BenhNhanBUS().SoBNDangKham(txbNgayKhamBenh.Text.ToString());
                int mabn = 1;
                if (dtgBenhNhan.Visible == true)
                {
                    mabn = Convert.ToInt32(dtgBenhNhan.CurrentRow.Cells["MaBenhNhan"].Value.ToString());

                }
                if (dtgTraCuuBN.Visible == true)
                {
                    mabn = Convert.ToInt32(dtgTraCuuBN.CurrentRow.Cells["MaBenhNhan2"].Value.ToString());
                }
                int sobntoida = new ThamSoBUS().LaySoBNToiDa();
                int bndakham = Convert.ToInt32(new BenhNhanBUS().SoBNDaKham(txbNgayKhamBenh.Text.ToString()).ToString());
                int sobnconlai = sobntoida - bndakham;
                if (sobnconlai != 0 && KiemTra(mabn, lt) == 0)
                {
                    if (dtgBenhNhan.Visible == true)
                    {
                        tabControl1.SelectedTabIndex = 0;
                        txbTenBNKhamBenh.Text = dtgBenhNhan.CurrentRow.Cells["TenBenhNhan"].Value.ToString();
                        txbDiaChiBNKhamBenh.Text = dtgBenhNhan.CurrentRow.Cells["DiaChi"].Value.ToString();
                        txbNgaySinhBNKhamBenh.Text = dtgBenhNhan.CurrentRow.Cells["NgaySinh"].Value.ToString();
                        txbGioiTinhBNKhamBenh.Text = dtgBenhNhan.CurrentRow.Cells["GioiTinh"].Value.ToString();
                    }
                    if (dtgTraCuuBN.Visible == true)
                    {
                        tabControl1.SelectedTabIndex = 0;
                        txbTenBNKhamBenh.Text = dtgTraCuuBN.CurrentRow.Cells["TenBenhNhan2"].Value.ToString();
                        txbDiaChiBNKhamBenh.Text = dtgTraCuuBN.CurrentRow.Cells["DiaChi2"].Value.ToString();
                        txbNgaySinhBNKhamBenh.Text = dtgTraCuuBN.CurrentRow.Cells["NgaySinh2"].Value.ToString();
                        txbGioiTinhBNKhamBenh.Text = dtgTraCuuBN.CurrentRow.Cells["GioiTinh2"].Value.ToString();
                    }
                }
                else if (sobnconlai == 0)
                {
                    MessageBox.Show("Số bệnh nhân khám trong ngày đã đạt tối đa.Không thể tiếp nhận thêm bệnh nhân mới!", "Quản Lý Phòng Mạch Tư");
                }
                else if (KiemTra(mabn, lt) == 1)
                {
                    MessageBox.Show("Bệnh Nhân này đã có trong Danh Sách Chờ Khám Bệnh.\nKhông thể tiếp nhận nữa !", "Quản Lý Phòng Mạch Tư");
                }
            }
            else
            {
                MessageBox.Show("Chưa có thông tin bệnh nhân", "Quản Lý Phòng Mạch Tư");
            }
        }

        #endregion

        private void buttonX6_Click(object sender, EventArgs e)
        {
            tam = 1;
            tabControl1.SelectedTabIndex = 1;
            string sql = "";
            dtgTraCuuBN.DataSource = new BenhNhanBUS().TraCuuBenhNhan(sql);
            grpTraCuuBN.Visible = true;
            btnTraCuuBN.Visible = true;
            dtgTraCuuBN.Visible = true;
            dtgBenhNhan.Hide();
            txbHoTen.Text = "";
            txbNgaySinh.Text = "";
            txbDiaChi.Text = "";
            txbMaBNSearch.Text = "";
            txbTenBNSearch.Text = "";
            txbNgaySinhSearch.Text = "";
            txbDiaChiSearch.Text = "";
            btnTraCuu.Visible = false;
            btnThemBenhNhan.Visible = false;
            btnXoaBenhNhan.Visible = false;
            btnCapNhatBenhNhan.Visible = false;
        }

        private void buttonX5_Click(object sender, EventArgs e)
        {
            if (txbTenBNKhamBenh.Text.ToString() == "")
            {
                MessageBox.Show("Chưa có thông tin bệnh nhân", "Quản Lý Phòng Mạch Tư");
            }
            else
            {
                int sobntoida = new ThamSoBUS().LaySoBNToiDa();
                int bndakham = Convert.ToInt32(new BenhNhanBUS().SoBNDaKham(txbNgayKhamBenh.Text.ToString()));
                txbBNConLai.Text = (sobntoida - bndakham).ToString();
                KhamBenh kb = new KhamBenh();
                kb.MaBenhNhan = Convert.ToInt32(dtgBenhNhan.CurrentRow.Cells["MaBenhNhan"].Value.ToString());
                if (tam == 1)
                {
                    kb.MaBenhNhan = Convert.ToInt32(dtgTraCuuBN.CurrentRow.Cells["MaBenhNhan2"].Value.ToString());
                }
                kb.NgayKham = txbNgayKhamBenh.Text.ToString();
                if (Convert.ToInt32(txbBNConLai.Text) != 0)
                {
                    if (new KhamBenhBUS().KiemTraBenhNhan(kb.MaBenhNhan, kb.NgayKham) > 0)
                    {
                        MessageBox.Show("Bệnh Nhân này đã có trong Danh Sách Chờ Khám Bệnh.\nKhông thể tiếp nhận nữa !", "Quản Lý Phòng Mạch Tư");
                    }
                    else
                    {
                        new KhamBenhBUS().ThemBNvaoDSKhamBenh(kb);
                        new BenhNhanBUS().CapNhatChuaLapPhieu(kb.MaBenhNhan);
                        new BenhNhanBUS().CapNhatChuaThanhToan(kb.MaBenhNhan);
                        dtgDanhSachKhamBenh.DataSource = new BenhNhanBUS().DanhSachKhamBenh(kb.NgayKham);
                        bndakham = Convert.ToInt32(new BenhNhanBUS().SoBNDaKham(txbNgayKhamBenh.Text.ToString()));
                        txbBNConLai.Text = (sobntoida - bndakham).ToString();
                    }
                }
                else if (Convert.ToInt32(txbBNConLai.Text) == 0)
                {
                    MessageBox.Show("Số bệnh nhân khám trong ngày đã đạt tối đa.Không thể tiếp nhận thêm bệnh nhân mới!", "Quản Lý Phòng Mạch Tư");
                }
            }
        }

        #region "tab qui dinh"

        private void btnQDBNToiDa_Click(object sender, EventArgs e)
        {
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            lblBNToiDa.Visible = true;
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoBNToiDa().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void btnQDSLLoaiBenh_Click(object sender, EventArgs e)
        {
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDSLLoaiBenh.Location = new Point(110, 67);
            lblLoaiBenh.Visible = true;
            lblLoaiBenh.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongLoaiBenh().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void btnQDSLLoaiThuoc_Click(object sender, EventArgs e)
        {
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDSLLoaiThuoc.Location = new Point(110, 67);
            lblLoaiThuoc.Visible = true;
            lblLoaiThuoc.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongLoaiThuoc().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void btnQDSLDonVi_Click(object sender, EventArgs e)
        {
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLDonVi.Location = new Point(110, 67);
            lblDonVi.Visible = true;
            lblDonVi.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongDonVi().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void btnQDSLCachDung_Click(object sender, EventArgs e)
        {
            grpQuyDinh.Visible = true;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDSLCachDung.Location = new Point(110, 67);
            lblCachDung.Visible = true;
            lblCachDung.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongCachDung().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void btnQDTienKham_Click(object sender, EventArgs e)
        {
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDTienKham.Location = new Point(110, 67);
            lblTienKham.Visible = true;
            lblTienKham.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LayTienKham().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void btnBack_Click(object sender, EventArgs e)
        {
            lblBNToiDa.Visible = false;
            lblCachDung.Visible = false;
            lblDonVi.Visible = false;
            lblLoaiBenh.Visible = false;
            lblLoaiThuoc.Visible = false;
            lblTienKham.Visible = false;
            grpQuyDinh.Visible = false;
            btnQDSLCachDung.Visible = true;
            btnQDSLLoaiBenh.Visible = true;
            btnQDSLLoaiThuoc.Visible = true;
            btnQDTienKham.Visible = true;
            btnQDSLDonVi.Visible = true;
            btnQDBNToiDa.Visible = true;
            btnQDSLCachDung.Location = new Point(544, 67);
            btnQDSLDonVi.Location = new Point(327, 278);
            btnQDSLLoaiBenh.Location = new Point(110, 278);
            btnQDSLLoaiThuoc.Location = new Point(327, 67);
            btnQDTienKham.Location = new Point(544, 278);
        }

        private void btnThayDoiQD_Click(object sender, EventArgs e)
        {
            if (lblBNToiDa.Visible == true)
            {
                int so = Convert.ToInt32(txbQuyDinh.Text);
                new ThamSoBUS().SuaSoBenhNhanToiDa(so);
                MessageBox.Show("Cập Nhật Quy Định Về Số Bệnh Nhân Tối Đa thành công !", "Quản Lý Phòng Mạch Tư ");
            }
            if (lblCachDung.Visible == true)
            {
                int so = Convert.ToInt32(txbQuyDinh.Text.ToString());
                new ThamSoBUS().SuaSoLuongCachDung(so);
                MessageBox.Show("Cập Nhật Quy Định Về Số Lượng Cách Dùng thành công !", "Quản Lý Phòng Mạch Tư");
            }
            if (lblDonVi.Visible == true)
            {
                int so = Convert.ToInt32(txbQuyDinh.Text.ToString());
                new ThamSoBUS().SuaSoLuongDonVi(so);
                MessageBox.Show("Cập Nhật Quy Định Về Số Lượng Đơn Vị Tính thành công !", "Quản Lý Phòng Mạch Tư");
            }
            if (lblLoaiBenh.Visible == true)
            {
                int so = Convert.ToInt32(txbQuyDinh.Text.ToString());
                new ThamSoBUS().SuaSoLuongLoaiBenh(so);
                MessageBox.Show("Cập Nhật Quy Định Về Số Lượng Loại Bệnh thành công !", "Quản Lý Phòng Mạch Tư");
            }
            if (lblLoaiThuoc.Visible == true)
            {
                int so = Convert.ToInt32(txbQuyDinh.Text.ToString());
                new ThamSoBUS().SuaSoLuongLoaiThuoc(so);
                MessageBox.Show("Cập Nhật Quy Định Về Số Lượng Loại Thuốc thành công !", "Quản Lý Phòng Mạch Tư");
            }
            if (lblTienKham.Visible == true)
            {
                int so = Convert.ToInt32(txbQuyDinh.Text.ToString());
                new ThamSoBUS().SuaTienKham(so);
                MessageBox.Show("Cập Nhật Quy Định Về Số Tiền Khám Bệnh thành công !", "Quản Lý Phòng Mạch Tư");
            }
        }

        private void sốLượngBệnhNhânTốiĐaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 8;
            //lblBNToiDa.Visible = false;
            lblCachDung.Visible = false;
            lblDonVi.Visible = false;
            lblLoaiBenh.Visible = false;
            lblLoaiThuoc.Visible = false;
            lblTienKham.Visible = false;
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDBNToiDa.Visible = true;
            lblBNToiDa.Visible = true;
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoBNToiDa().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void sốLượngLoạiThuốcToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 8;
            lblBNToiDa.Visible = false;
            lblCachDung.Visible = false;
            lblDonVi.Visible = false;
            lblLoaiBenh.Visible = false;
            btnQDSLLoaiThuoc.Visible = true;
            lblTienKham.Visible = false;
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDSLLoaiThuoc.Location = new Point(110, 67);
            lblLoaiThuoc.Visible = true;
            lblLoaiThuoc.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongLoaiThuoc().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void sốLượngCáchDùngToolStripMenuItem_Click(object sender, EventArgs e)
        {

            tabControl1.SelectedTabIndex = 8;
            lblBNToiDa.Visible = false;
            //lblCachDung.Visible = false;
            lblDonVi.Visible = false;
            lblLoaiBenh.Visible = false;
            lblLoaiThuoc.Visible = false;
            lblTienKham.Visible = false;
            grpQuyDinh.Visible = true;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDSLCachDung.Visible = true;
            btnQDSLCachDung.Location = new Point(110, 67);
            lblCachDung.Visible = true;
            lblCachDung.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongCachDung().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void sốLượngLoạiBệnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 8;
            lblBNToiDa.Visible = false;
            lblCachDung.Visible = false;
            lblDonVi.Visible = false;
            //lblLoaiBenh.Visible = false;
            lblLoaiThuoc.Visible = false;
            lblTienKham.Visible = false;
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDSLLoaiBenh.Visible = true;
            btnQDSLLoaiBenh.Location = new Point(110, 67);
            lblLoaiBenh.Visible = true;
            lblLoaiBenh.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongLoaiBenh().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void sốLượngĐơnVịToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 8;
            lblBNToiDa.Visible = false;
            lblCachDung.Visible = false;
            //lblDonVi.Visible = false;
            lblLoaiBenh.Visible = false;
            lblLoaiThuoc.Visible = false;
            lblTienKham.Visible = false;
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDTienKham.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLDonVi.Visible = true;
            btnQDSLDonVi.Location = new Point(110, 67);
            lblDonVi.Visible = true;
            lblDonVi.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LaySoLuongDonVi().ToString());
            txbQuyDinh.Text = temp.ToString();
        }

        private void tiềnKhámBệnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 8;
            lblBNToiDa.Visible = false;
            lblCachDung.Visible = false;
            lblDonVi.Visible = false;
            lblLoaiBenh.Visible = false;
            lblLoaiThuoc.Visible = false;
            //lblTienKham.Visible = false;
            grpQuyDinh.Visible = true;
            btnQDSLCachDung.Visible = false;
            btnQDSLLoaiBenh.Visible = false;
            btnQDBNToiDa.Visible = false;
            btnQDSLLoaiThuoc.Visible = false;
            btnQDSLDonVi.Visible = false;
            btnQDTienKham.Visible = true;
            btnQDTienKham.Location = new Point(110, 67);
            lblTienKham.Visible = true;
            lblTienKham.Location = new Point(15, 34);
            int temp = Convert.ToInt32(new ThamSoBUS().LayTienKham().ToString());
            txbQuyDinh.Text = temp.ToString();

        }

        #endregion

        #region "tab HoaDon"
        private void btnLapHoaDon_Click(object sender, EventArgs e)
        {
            int mbn = Convert.ToInt32(dtgDanhSachKhamBenh.CurrentRow.Cells["MaBenhNhan1"].Value.ToString());
            if (new BenhNhanBUS().LayTinhTrangLP(mbn) != 0 && new BenhNhanBUS().LayTinhTrangTT(mbn) != 1)
            {

                int TienThuoc = 0;
                int ThanhTien = 0;
                int TienKham = new ThamSoBUS().LayTienKham();
                //tabItem3.Visible = true;
                tabControl1.SelectedTabIndex = 2;
                txbMaBNHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["MaBenhNhan1"].Value.ToString();
                txbTenBNHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["TenBenhNhan1"].Value.ToString();
                txbGioiTinhHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["GioiTinh1"].Value.ToString();
                txbDiaChiHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["DiaChi1"].Value.ToString();
                txbNgaySinhHoaDon.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["NgaySinh1"].Value.ToString();
                txbNgayKhamHoaDon.Text = txbNgayKhamBenh.Text.ToString();
                txbTienKham.Text = TienKham.ToString();

                KhamBenh kb = new KhamBenh();
                kb.MaBenhNhan = Convert.ToInt32(txbMaBNHoaDon.Text.ToString());
                kb.NgayKham = txbNgayKhamHoaDon.Text.ToString();
                int MaKham = new KhamBenhBUS().LayMaKhamBenh(kb);

                List<ChiTietKhamBenh> ctkb = new ChiTietKhamBenhBUS().LayCTKB(MaKham);
                TienThuoc = TinhTien(ctkb);
                ThanhTien = TienThuoc + TienKham;
                txbTienThuoc.Text = TienThuoc.ToString();
                txbTongTien.Text = ThanhTien.ToString();
            }
            else if (new BenhNhanBUS().LayTinhTrangLP(mbn) == 0)
            {
                MessageBox.Show("Bệnh nhân này chưa Lập Phiếu Khám Bệnh,không thể Lập Hóa Đơn !", "Quản Lý Phòng Mạch Tư");
            }
            else if (new BenhNhanBUS().LayTinhTrangTT(mbn) == 1)
            {
                MessageBox.Show("Bệnh nhân này đã Lập Hóa Đơn rồi,không thể Lập Hóa Đơn nữa !", "Quản Lý Phòng Mạch Tư");
            }

        }

        private void btnLapHoaDon2_Click(object sender, EventArgs e)
        {
            if (txbMaBNHoaDon.Text.ToString() != "")
            {
                int ThanhTien = Convert.ToInt32(txbTongTien.Text.ToString());
                KhamBenh kb = new KhamBenh();
                kb.MaBenhNhan = Convert.ToInt32(txbMaBNHoaDon.Text.ToString());
                kb.NgayKham = txbNgayKhamHoaDon.Text.ToString();
                int makham = new KhamBenhBUS().LayMaKhamBenh(kb);
                new KhamBenhBUS().ThemTongTien(ThanhTien, makham);
                new BenhNhanBUS().CapNhatDaThanhToan(kb.MaBenhNhan);
                MessageBox.Show("Hóa Đơn đã thanh toán xong !", "Quản Lý Phòng Mạch Tư");
                dtgDanhSachKhamBenh.DataSource = new BenhNhanBUS().DanhSachKhamBenh(kb.NgayKham);
                tabControl1.SelectedTabIndex = 0;
            }
            else
            {
                MessageBox.Show("Chưa chọn bệnh nhân !", "Quản Lý Phòng Mạch Tư");
                tabControl1.SelectedTabIndex = 0;
            }
        }

        public int TinhTien(List<ChiTietKhamBenh> ctkb)
        {
            int TienThuoc = 0;
            for (int i = 0; i < ctkb.Count; i++)
            {
                int Tien = 0;
                int maThuoc = Convert.ToInt32(ctkb[i].MaThuoc.ToString());
                int maDV = Convert.ToInt32(ctkb[i].MaDonVi.ToString());
                int soLuong = Convert.ToInt32(ctkb[i].SoLuong.ToString());
                int DonGia = new ThuocBUS().LayDonGiaTheoThuoc(maThuoc, maDV);
                Tien = DonGia * soLuong;
                TienThuoc += Tien;
            }
            return TienThuoc;
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTabIndex = 0;
        }

        #endregion

        #region "tab CachDung"
        private void btnThemCachDung_Click(object sender, EventArgs e)
        {
            int kt = 0;
            if (txbTenCachDung.Text.ToString() == " ")
            {
                MessageBox.Show("Tên cách dùng không được trống", "Quản Lý Phòng Mạch Tư");
            }
            CachDung cd = new CachDung();
            cd.MaCachDung = Convert.ToInt32(dtgCachDung.CurrentRow.Cells["MaCachDung"].Value) + 1;
            cd.TenCachDung = txbTenCachDung.Text.ToString();
            List<CachDung> dscd = new List<CachDung>();
            dscd = new CachDungBUS().DanhSachCachDung();
            for (int i = 0; i < dscd.Count; i++)
            {
                if (cd.TenCachDung == dscd[i].TenCachDung)
                {
                    kt = 1;
                }
            }
            if (kt == 0)
            {
                new CachDungBUS().ThemCachDung(cd);
                dtgCachDung.DataSource = new CachDungBUS().DanhSachCachDung();
                MessageBox.Show("Thêm cách dùng thành công", "Quản Lý Phòng Mạch Tư");
            }
            if (kt == 1)
            {
                MessageBox.Show("Cách dùng này đã tồn tại trong Danh Sách Cách Dùng rồi", "Quản Lý Phòng Mạch Tư");
            }
        }

        private void btnXoaCachDung_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn chắc chắn muốn xóa chứ ?", "Quản Lý Phòng Mạch Tư", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                int macachdung = Convert.ToInt32(dtgCachDung.CurrentRow.Cells["MaCachDung"].Value.ToString());
                new CachDungBUS().XoaCachDung(macachdung);
                dtgCachDung.DataSource = new CachDungBUS().DanhSachCachDung();
                MessageBox.Show("Xóa cách dùng thành công", "Quản Lý Phòng Mạch Tư");
            }
        }

        private void btnSuaCachDung_Click(object sender, EventArgs e)
        {
            if (txbTenCachDung.Text.ToString() == " ")
            {
                MessageBox.Show("Tên cách dùng không được trống", "Quản Lý Phòng Mạch Tư");
            }

            CachDung cd = new CachDung();
            cd.MaCachDung = Convert.ToInt32(dtgCachDung.CurrentRow.Cells["MaCachDung"].Value);
            cd.TenCachDung = txbTenCachDung.Text.ToString();
            new CachDungBUS().CapNhatCachDung(cd);
            dtgCachDung.DataSource = new CachDungBUS().DanhSachCachDung();
            MessageBox.Show("Cập nhật cách dùng thành công", "Quản Lý Phòng Mạch Tư");
        }
        #endregion

        #region "Tab LoaiBenh"
        private void tabItem4_Click(object sender, EventArgs e)
        {
            dtgLoaiBenh.DataSource = new LoaiBenhBUS().DanhSachLoaiBenh();
        }

        private void dtgLoaiBenh_SelectionChanged(object sender, EventArgs e)
        {
            txbMaLoaiBenh.Text = dtgLoaiBenh.CurrentRow.Cells["MaLoaiBenh"].Value.ToString();
            txbTenLoaiBenh.Text = dtgLoaiBenh.CurrentRow.Cells["TenLoaiBenh"].Value.ToString();
        }

        private void ThongBaoThanhCong(string tenchucnang)
        {
            MessageBox.Show(tenchucnang + " thành công.", "Quản Lý Phòng Mạch Tư");
        }

        private void ThongBaoKhongThanhCong(string tenchucnang)
        {
            MessageBox.Show(tenchucnang + " không thành công.", "Quản Lý Phòng Mạch Tư", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private void btnThemLoaiBenh_Click(object sender, EventArgs e)
        {
            if (txbTenLoaiBenh.Text == string.Empty)
            {
                MessageBox.Show("Tên loại bệnh không được trống.", "Quản Lý Phòng Mạch Tư");
            }
            else
            {
                LoaiBenh lb = new LoaiBenh();
                lb.TenLoaiBenh = txbTenLoaiBenh.Text;
                new LoaiBenhBUS().ThemLoaiBenh(lb);
                ThongBaoThanhCong("Thêm loại bệnh");
                dtgLoaiBenh.DataSource = new LoaiBenhBUS().DanhSachLoaiBenh();
            }
        }

        private void btnXoaLoaiBenh_Click(object sender, EventArgs e)
        {
            LoaiBenh lb = new LoaiBenh();
            lb.MaLoaiBenh = Convert.ToInt32(txbMaLoaiBenh.Text);
            lb.TenLoaiBenh = txbTenLoaiBenh.Text;
            if (MessageBox.Show("Bạn có muốn xóa Loại bệnh '" + lb.TenLoaiBenh + "'?", "Quản Lý Phòng Mạch Tư",
                                MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
            {
                if (new LoaiBenhBUS().XoaLoaiBenh(lb) > 0)
                {
                    ThongBaoThanhCong("Xóa loại bệnh");
                    dtgLoaiBenh.DataSource = new LoaiBenhBUS().DanhSachLoaiBenh();
                }
                else
                    ThongBaoKhongThanhCong("Xóa loại bệnh");
            }
        }

        private void btnSuaLoaiBenh_Click(object sender, EventArgs e)
        {
            if (txbTenLoaiBenh.Text == string.Empty)
            {
                MessageBox.Show("Tên loại bệnh không được trống.", "Quản Lý Phòng Mạch Tư");
            }
            else
            {
                string tenLoaiBenhcu = dtgLoaiBenh.CurrentRow.Cells["TenLoaiBenh"].Value.ToString();

                LoaiBenh lb = new LoaiBenh();
                lb.MaLoaiBenh = Convert.ToInt32(txbMaLoaiBenh.Text);
                lb.TenLoaiBenh = txbTenLoaiBenh.Text;
                if (MessageBox.Show("Bạn có muốn sửa Loại bệnh '" + tenLoaiBenhcu + "' thành Loại bệnh '" + lb.TenLoaiBenh + "'?",
                    "Quản Lý Phòng Mạch Tư", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
                {
                    new LoaiBenhBUS().SuaLoaiBenh(lb);
                    ThongBaoThanhCong("Cập nhật loại bệnh");
                    dtgLoaiBenh.CurrentRow.Cells["TenLoaiBenh"].Value = lb.TenLoaiBenh;
                }
            }
        }
        #endregion

        #region "Tab Thuoc"
        private void tabItem5_Click(object sender, EventArgs e)
        {
            dtgLoaiThuoc.DataSource = new ThuocBUS().DanhSachThuoc();
            DonVi.DataSource = new DonViBUS().DanhSachDonVi();
            cbcDonViTinh.DataSource = new DonViBUS().DanhSachDonVi();
        }

        private void dtgLoaiThuoc_SelectionChanged(object sender, EventArgs e)
        {
            txbMaThuoc.Text = dtgLoaiThuoc.CurrentRow.Cells["MaThuoc"].Value.ToString();
            txbTenThuoc.Text = dtgLoaiThuoc.CurrentRow.Cells["TenThuoc"].Value.ToString();
            txbSoLuongTon.Text = dtgLoaiThuoc.CurrentRow.Cells["SoLuongTon"].Value.ToString();

            DaCapNhat = true;
            dtgDonGia.DataSource = new DonGiaBUS().DanhSachDonGia(Convert.ToInt32(txbMaThuoc.Text));
            for (int i = 0; i < dtgDonGia.RowCount; i++)
                dtgDonGia.Rows[i].Cells["TenThuoc2"].Value = txbTenThuoc.Text;
        }

        private string ThongBaoKiemTraThongTinThuocDauVao()
        {
            string tb = "";
            int sl;
            if (txbTenThuoc.Text == string.Empty || txbSoLuongTon.Text == string.Empty)
            {
                if (txbTenThuoc.Text == string.Empty)
                    tb += "Tên thuốc ";
                if (txbTenThuoc.Text == string.Empty && txbSoLuongTon.Text == string.Empty)
                    tb += "và ";
                if (txbSoLuongTon.Text == string.Empty)
                    tb += "Số lượng tồn ";
                if (tb != "")
                    tb += "không được trống.\n";
            }

            try
            {
                sl = Convert.ToInt32(txbSoLuongTon.Text);
                if (sl <= 0)
                { tb += "Số lượng tồn phải là số nguyên dương."; }
            }
            catch { tb += "Số lượng tồn phải là số nguyên dương."; };

            return tb;
        }

        private void btnThemThuoc_Click(object sender, EventArgs e)
        {
            string tb = ThongBaoKiemTraThongTinThuocDauVao();
            if (tb != "")
                MessageBox.Show(tb, "Quản Lý Phòng Mạch Tư");
            else
            {
                Thuoc t = new Thuoc();
                t.TenThuoc = txbTenThuoc.Text;
                t.SoLuongTon = Convert.ToInt32(txbSoLuongTon.Text);
                new ThuocBUS().ThemThuoc(t);
                ThongBaoThanhCong("Thêm tên thuốc mới");
                dtgLoaiThuoc.DataSource = new ThuocBUS().DanhSachThuoc();
            }
        }

        private void btnXoaThuoc_Click(object sender, EventArgs e)
        {
            Thuoc t = new Thuoc();
            t.MaThuoc = Convert.ToInt32(txbMaThuoc.Text);
            t.TenThuoc = txbTenThuoc.Text;
            if (MessageBox.Show("Bạn có muốn xóa Thuốc '" + t.TenThuoc + "'?", "Quản Lý Phòng Mạch Tư",
                                MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
            {
                if (new ThuocBUS().XoaThuoc(t) > 0)
                {
                    ThongBaoThanhCong("Xóa tên thuốc");
                    dtgLoaiThuoc.DataSource = new ThuocBUS().DanhSachThuoc();
                }
                else
                    ThongBaoKhongThanhCong("Xóa tên thuốc");
            }
        }

        private void btnSuaThuoc_Click(object sender, EventArgs e)
        {
            string tb = ThongBaoKiemTraThongTinThuocDauVao();
            if (tb != "")
                MessageBox.Show(tb, "Quản Lý Phòng Mạch Tư");
            else
            {
                string tenThuocCu = dtgLoaiThuoc.CurrentRow.Cells["TenThuoc"].Value.ToString();
                int soLuongTonCu = Convert.ToInt32(dtgLoaiThuoc.CurrentRow.Cells["SoLuongTon"].Value.ToString());

                Thuoc t = new Thuoc();
                t.MaThuoc = Convert.ToInt32(txbMaThuoc.Text);
                t.TenThuoc = txbTenThuoc.Text;
                t.SoLuongTon = Convert.ToInt32(txbSoLuongTon.Text);

                tb = "Bạn có muốn sửa?";
                if (tenThuocCu != t.TenThuoc)
                    tb += "\nTên thuốc '" + tenThuocCu + "' thành '" + t.TenThuoc + "'";
                if (soLuongTonCu != t.SoLuongTon)
                    tb += "\nSố lượng tồn " + soLuongTonCu.ToString() + " thành " + t.SoLuongTon.ToString();
                if (MessageBox.Show(tb, "Quản Lý Phòng Mạch Tư", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
                {
                    if (new ThuocBUS().SuaThuoc(t) > 0)
                    {
                        ThongBaoThanhCong("Cập nhật thuốc");
                        dtgLoaiThuoc.CurrentRow.Cells["TenThuoc"].Value = t.TenThuoc;
                        dtgLoaiThuoc.CurrentRow.Cells["SoLuongTon"].Value = t.SoLuongTon.ToString();
                        for (int i = 0; i < dtgDonGia.RowCount; i++)
                            dtgDonGia.Rows[i].Cells["TenThuoc2"].Value = t.TenThuoc;
                    }
                    else
                        ThongBaoKhongThanhCong("Cập nhật thuốc");
                }
            }
        }

        private string ThongBaoKiemTraDonGia()
        {
            string tb = "";
            if (txbDonGia.Text == string.Empty)
                tb += "Đơn giá không được trống.\n";
            try
            {
                int dg = Convert.ToInt32(txbDonGia.Text);
                if (dg <= 0)
                    tb += "Đơn giá phải là số nguyên dương.";
            }
            catch { tb += "Đơn giá phải là số nguyên dương."; }
            return tb;
        }

        private bool KiemTraDonGiaTonTai(DonGia dg)
        {
            for (int i = 0; i < dtgDonGia.RowCount; i++)
                if (Convert.ToInt32(dtgDonGia.Rows[i].Cells["DonVi"].Value) == dg.MaDonVi)
                {
                    MessageBox.Show("Đơn giá đã tồn tại.", "Quản Lý Phòng Mạch Tư");
                    return true;
                }
            return false;
        }

        private void btnThemDonGia_Click(object sender, EventArgs e)
        {
            string tb = ThongBaoKiemTraDonGia();
            if (tb != "")
                MessageBox.Show(tb, "Quản Lý Phòng Mạch Tư");
            else
            {
                DonGia dg = new DonGia();
                dg.MaThuoc = Convert.ToInt32(txbMaThuoc.Text);
                dg.MaDonVi = Convert.ToInt32(cbcDonViTinh.SelectedValue);
                dg.DonGia1 = Convert.ToInt32(txbDonGia.Text);
                if (!KiemTraDonGiaTonTai(dg))
                {
                    new DonGiaBUS().ThemDonGia(dg);
                    ThongBaoThanhCong("Thêm đơn giá");
                    dtgDonGia.DataSource = new DonGiaBUS().DanhSachDonGia(Convert.ToInt32(txbMaThuoc.Text));
                    for (int i = 0; i < dtgDonGia.RowCount; i++)
                        dtgDonGia.Rows[i].Cells["TenThuoc2"].Value = txbTenThuoc.Text;
                }
            }
        }

        private void btnXoaDonGia_Click(object sender, EventArgs e)
        {
            DonGia dg = new DonGia();
            dg.MaDonGia = Convert.ToInt32(dtgDonGia.CurrentRow.Cells["MaDonGia"].Value);
            string tenThuoc = txbTenThuoc.Text;
            string tenDonVi = dtgDonGia.CurrentRow.Cells["DonVi"].Value.ToString();
            if (MessageBox.Show("Bạn có muốn xóa đơn giá của " + tenDonVi + " " + tenThuoc + "?", "Quản Lý Phòng Mạch Tư",
                                MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
            {
                if (new DonGiaBUS().XoaDonGia(dg) > 0)
                {
                    ThongBaoThanhCong("Xóa đơn giá");
                    dtgDonGia.DataSource = new DonGiaBUS().DanhSachDonGia(Convert.ToInt32(txbMaThuoc.Text));
                }
                else
                    ThongBaoKhongThanhCong("Xóa đơn giá");
            }
        }

        int donViCu;
        int donGiaCu;
        int rowIndex;
        bool DaCapNhat;
        private void dtgDonGia_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (DaCapNhat == false)
            {
                dtgDonGia.Rows[rowIndex].Cells["DonVi"].Value = donViCu;
                dtgDonGia.Rows[rowIndex].Cells["DonGia"].Value = donGiaCu;
                DaCapNhat = true;
            }
        }

        private void dtgDonGia_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            donViCu = Convert.ToInt32(dtgDonGia.Rows[e.RowIndex].Cells["DonVi"].Value);
            donGiaCu = Convert.ToInt32(dtgDonGia.Rows[e.RowIndex].Cells["DonGia"].Value);
            rowIndex = e.RowIndex;
            DaCapNhat = false;
        }

        private void btnSuaDonGia_Click(object sender, EventArgs e)
        {
            if (DaCapNhat == true)
            {
                MessageBox.Show("Đơn giá đã được cập nhật.", "Quản Lý Phòng Mạch Tư");
                return;
            }
            string tb = "";
            int donViMoi = Convert.ToInt32(dtgDonGia.CurrentRow.Cells["DonVi"].Value);
            int donGiaMoi = Convert.ToInt32(dtgDonGia.CurrentRow.Cells["DonGia"].Value);

            for (int i = 0; i < dtgDonGia.RowCount; i++)
                if (donViMoi == Convert.ToInt32(dtgDonGia.Rows[i].Cells["DonVi"].Value) && dtgDonGia.Rows[i] != dtgDonGia.CurrentRow)
                {
                    tb += "Đơn vị đã tồn tại.\n";
                    break;
                }
            if (donGiaMoi <= 0)
                tb += "Đơn giá phải là số nguyên dương.";

            if (tb != "")
            {
                MessageBox.Show(tb, "Quản Lý Phòng Mạch Tư");
            }
            else
            {
                if (MessageBox.Show("Bạn có muốn cập nhật đơn giá?", "Quản Lý Phòng Mạch Tư", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
                {
                    DonGia dg = new DonGia();
                    dg.MaDonGia = Convert.ToInt32(dtgDonGia.CurrentRow.Cells["MaDonGia"].Value);
                    dg.MaDonVi = donViMoi;
                    dg.DonGia1 = donGiaMoi;
                    new DonGiaBUS().SuaDonGia(dg);
                    ThongBaoThanhCong("Cập nhật đơn giá");
                    DaCapNhat = true;
                }
            }

            if (DaCapNhat == false)
            {
                dtgDonGia.CurrentRow.Cells["DonVi"].Value = donViCu.ToString();
                dtgDonGia.CurrentRow.Cells["DonGia"].Value = donGiaCu.ToString();
            }
        }
        #endregion

        #region "Tab Don vi"
        private void tabItem6_Click(object sender, EventArgs e)
        {
            dtgDonVi.DataSource = new DonViBUS().DanhSachDonVi();
        }

        private void dtgDonVi_SelectionChanged(object sender, EventArgs e)
        {
            txbMaDonVi.Text = dtgDonVi.CurrentRow.Cells["MaDonVi"].Value.ToString();
            txbTenDonVi.Text = dtgDonVi.CurrentRow.Cells["TenDonVi"].Value.ToString();
        }

        private void btnThemDV_Click(object sender, EventArgs e)
        {
            if (txbTenDonVi.Text == string.Empty)
                MessageBox.Show("Tên đơn vị không được trống.", "Quản Lý Phòng Mạch Tư");
            else
            {
                DonVi dv = new DonVi();
                dv.TenDonVi = txbTenDonVi.Text;
                new DonViBUS().ThemDV(dv);
                ThongBaoThanhCong("Thêm đơn vị mới");
                dtgDonVi.DataSource = new DonViBUS().DanhSachDonVi();
            }
        }

        private void btnXoaDV_Click(object sender, EventArgs e)
        {
            DonVi dv = new DonVi();
            dv.MaDonVi = Convert.ToInt32(txbMaDonVi.Text);
            if (MessageBox.Show("Bạn có muốn xóa Đơn vị '" + dv.TenDonVi + "'?", "Quản Lý Phòng Mạch Tư",
                                MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
            {
                if (new DonViBUS().XoaDV(dv) > 0)
                {
                    ThongBaoThanhCong("Xóa tên đơn vị");
                    dtgDonVi.DataSource = new DonViBUS().DanhSachDonVi();
                }
                else
                    ThongBaoKhongThanhCong("Xóa tên đơn vị");
            }
        }

        private void btnSuaDV_Click(object sender, EventArgs e)
        {
            if (txbTenDonVi.Text == string.Empty)
                MessageBox.Show("Tên đơn vị không được trống.", "Quản Lý Phòng Mạch Tư");
            else
            {
                string tenDVCu = dtgDonVi.CurrentRow.Cells["TenDonVi"].Value.ToString();

                DonVi dv = new DonVi();
                dv.MaDonVi = Convert.ToInt32(txbMaDonVi.Text);
                dv.TenDonVi = txbTenDonVi.Text;
                if (MessageBox.Show("Bạn có muốn sửa Tên đơn vị '" + tenDVCu + "' thành '" + dv.TenDonVi + "'?",
                    "Quản Lý Phòng Mạch Tư", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.OK)
                {
                    new DonViBUS().SuaDV(dv);
                    ThongBaoThanhCong("Cập nhật đơn vị");
                    dtgDonVi.CurrentRow.Cells["TenDonVi"].Value = dv.TenDonVi;
                }
            }
        }
        #endregion

        private void buttonX7_Click(object sender, EventArgs e)
        {
            int maBN = Convert.ToInt32(dtgDanhSachKhamBenh.CurrentRow.Cells["MaBenhNhan1"].Value.ToString());
            if (new BenhNhanBUS().LayTinhTrangLP(maBN) == 0)
            {
                tabItem10.Visible = true;
                tabControl1.SelectedTabIndex = 9;
                txbMaBNCTKB.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["MaBenhNhan1"].Value.ToString();
                txbTenBNCTKB.Text = dtgDanhSachKhamBenh.CurrentRow.Cells["TenBenhNhan1"].Value.ToString();
                txbNgayKhamCTKB.Text = txbNgayKhamBenh.Text.ToString();
            }
            else
            {
                MessageBox.Show("Bệnh Nhân đã Lập Phiếu Khám Bệnh Rồi !", "Quản Lý Phòng Mạch Tư");
            }
        }

        private void dtgChiTietKhamBenh_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0 && e.RowIndex >= 0)
            {
                int maThuoc = Convert.ToInt32(dtgChiTietKhamBenh.Rows[e.RowIndex].Cells[0].Value);
                cbxDonVi.DataSource = new ThuocBUS().LayDonViChoThuoc(maThuoc);
                cbxDonVi.ValueMember = "MaDonVi";
                cbxDonVi.DisplayMember = "TenDonVi";
            }

        }

        private void cbxDonVi_SelectedIndexChanged(object sender, EventArgs e)
        {
            int madv = Convert.ToInt32(cbxDonVi.SelectedValue.ToString());
            string ten = new DonViBUS().LayTenDV(madv);
            dtgChiTietKhamBenh.CurrentRow.Cells["DonVi1"].Value = ten;
        }

        private void btnLapChiTietKB_Click(object sender, EventArgs e)
        {
            string TC = txbTrieuChung.Text.ToString();
            int maLB = Convert.ToInt32(cbxLoaiBenh.SelectedValue.ToString());
            KhamBenh kb = new KhamBenh();
            kb.MaBenhNhan = Convert.ToInt32(txbMaBNCTKB.Text.ToString());
            kb.NgayKham = txbNgayKhamCTKB.Text.ToString();
            int MaKB = new KhamBenhBUS().LayMaKhamBenh(kb);
            new KhamBenhBUS().ThemTrieuChung(TC, maLB, MaKB);
            for (int i = 0; i < dtgChiTietKhamBenh.RowCount - 1; i++)
            {
                ChiTietKhamBenh ct = new ChiTietKhamBenh();
                ct.MaKhamBenh = MaKB;
                ct.MaThuoc = Convert.ToInt32(dtgChiTietKhamBenh.Rows[i].Cells["TenThuoc1"].Value);
                int MaDV = new DonViBUS().LayMaDV(dtgChiTietKhamBenh.Rows[i].Cells["Donvi1"].Value.ToString());
                ct.MaDonVi = MaDV;
                ct.SoLuong = Convert.ToInt32(dtgChiTietKhamBenh.Rows[i].Cells["SoLuong"].Value);
                ct.MaCachDung = Convert.ToInt32(dtgChiTietKhamBenh.Rows[i].Cells["CachDung1"].Value);
                new ChiTietKhamBenhBUS().ThemCTKB(ct);
            }
            MessageBox.Show("Lập Phiếu Khám Bệnh thành công !", "Quản Lý Phòng Mạch Tư");
            new BenhNhanBUS().CapNhatDaLapPhieu(kb.MaBenhNhan);
            tabItem10.Visible = false;
            tabControl1.SelectedTabIndex = 0;
            dtgDanhSachKhamBenh.DataSource = new BenhNhanBUS().DanhSachKhamBenh(kb.NgayKham);
        }

        private void btnSuDungThuoc_Click(object sender, EventArgs e)
        {
            panelDoanhThu.Visible = false;
            panelSuDungThuoc.Visible = true;
            int thang = Convert.ToInt32(cbxThang.Text);
            int nam = Convert.ToInt32(cbxNam.Text);

            DataTable dt = new ThuocBUS().SuDungThuoc(thang, nam);
            CrBaoCaoThuocThang rpt = new CrBaoCaoThuocThang();
            rpt.SetDataSource(dt);
            rpt.SetParameterValue("Thang", thang.ToString());
            rpt.SetParameterValue("Nam", nam.ToString());

            crystalReportViewer2.ReportSource = rpt;
            panelSuDungThuoc.Location = new Point(0, 244);
           
        }

        private void btnDoanhThu_Click(object sender, EventArgs e)
        {
            panelSuDungThuoc.Visible = false;
            int thang = Convert.ToInt32(cbxThang.Text);
            int nam = Convert.ToInt32(cbxNam.Text);

            DataTable dt = new KhamBenhBUS().DoanhThuTheoNgay(thang, nam);
            CrDoanhThu rpt = new CrDoanhThu();
            rpt.SetDataSource(dt);
            rpt.SetParameterValue("Thang", thang.ToString());
            rpt.SetParameterValue("Nam", nam.ToString());

            crDTViewe.ReportSource = rpt;
            panelDoanhThu.Location = new Point(0, 244);
            panelDoanhThu.Visible = true;
        }

    }
}